#!/bin/bash
# 判断是否传递commit id过来：即$1长度为0
if [ -z "$1" ] || [ -z "$2" ];then
  echo "请传入commetID或者当前分支"
else
  # 获取所有分支
  res=`git branch -r`
  # 循环所有分支
  for branch in $res
  do
    # 字符串替换：将/前面的所有部分替换掉，即：origin/
    test=${branch##*/}
    # 判断是否为 HEAD或者->
    if [ $test != "HEAD" ]&&[ $test != "->" ]&&[ $test != $2 ];then
      # # 执行 git checkout 分支名称 切换到指定分支
      git checkout $test
      # 判断上一个命令是否执行结束
      if [ $? -eq 0 ];then
        # 执行完成：然后执行git cherry-pick commentID
        git cherry-pick $1
        if [ $? -eq 0 ];then
          # 然后执行 git push
          git push
          if [ $? -eq 0 ];then
            # 等待这一步执行完成后再进入下一次循环
            continue
          else
            echo "执行失败，请检查后再执行"
            break
          fi
        else
          echo "执行失败，请检查后再执行"
          break
        fi
      else
        # 执行失败退出循环
        echo "执行失败，请检查后再执行"
        break
      fi
    fi
  done
  # 最后切换到当前分支
  git checkout $2
fi